<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    正在测试cookie的封装
</body>
<script>

    // setCookie("c", "hello");
    // setCookie("a", "10");
    // setCookie("b", "20", {expires: 3});
    // setCookie("c", "30", {path:"/"});
    // setCookie("d", "40", {path:"/", expires:7});

    function setCookie(key, val, ops={}){
        // 路径的处理
        let p = ops.path ? ";path="+ops.path : "";
        // 有效期的处理
        let e = "";
        if(ops.expires){
            const d = new Date();
            d.setDate(d.getDate() + ops.expires);
            e = ";expires="+d;
        }
        document.cookie = `${key}=${val}${e}${p}`;
    }

    // removeCookie("d");
    // removeCookie("d", {path:"/"});

    function removeCookie(key, ops={}){
        ops.expires = -1;
        setCookie(key, null, ops);
    }

    // console.log(getCookie("a"));
    // console.log(getCookie("b"));
    // console.log(getCookie("c"));
    // console.log(getCookie("d"));

    // console.log(getCookie("e"));

    // console.log(document.cookie)

    function getCookie(key){
        // 获取所有cookie，并立即分割出每组数据
        const arr = document.cookie.split("; ");
        // 遍历所有数据
        for(let i=0;i<arr.length;i++){
            // 将每组数据。再次分割成名对应值的形式
            const sarr = arr[i].split("=");
            // 判断名是否符合传入的key
            if(key === sarr[0]){
                // 符合，返回对应的值
                return sarr[1];
            }
        }
        // 所有数据都比较完了之后，如果程序还在执行，说明没找到符合的数据。返回空字符
        return "";
    }

    
</script>
</html>